package org.quincy.netty.test.vo;

import java.util.Map;

import org.quincy.rock.comm.netty.NettyUtil;

import io.netty.buffer.ByteBuf;

/**
 * <b>DeviceId。</b>
 * <p><b>详细说明：</b></p>
 * <!-- 在此添加详细说明 -->
 * 无。
 * <p><b>修改列表：</b></p>
 * <table width="100%" cellSpacing=1 cellPadding=3 border=1>
 * <tr bgcolor="#CCCCFF"><td>序号</td><td>作者</td><td>修改日期</td><td>修改内容</td></tr>
 * <!-- 在此添加修改列表，参考第一行内容 -->
 * <tr><td>1</td><td>wks</td><td>2018年6月25日 下午10:45:21</td><td>建立类型</td></tr>
 * 
 * </table>
 * @version 1.0
 * @author wks
 * @since 1.0
 */
public class DeviceId extends BaseMessage {
	/**
	 * serialVersionUID。
	 */
	private static final long serialVersionUID = 1709723972041124745L;

	/**
	 * 设备类型。
	 */
	private int deviceType;
	/**
	 * 设备号。
	 */
	private String deviceNo;

	/**
	 * <b>获得设备类型。</b>
	 * <p><b>详细说明：</b></p>
	 * <!-- 在此添加详细说明 -->
	 * 无。
	 * @return 设备类型
	 */
	public int getDeviceType() {
		return deviceType;
	}

	/**
	 * <b>设置设备类型。</b>
	 * <p><b>详细说明：</b></p>
	 * <!-- 在此添加详细说明 -->
	 * 无。
	 * @param deviceType 设备类型
	 */
	public void setDeviceType(int deviceType) {
		this.deviceType = deviceType;
	}

	/**
	 * <b>获得设备号。</b>
	 * <p><b>详细说明：</b></p>
	 * <!-- 在此添加详细说明 -->
	 * 无。
	 * @return 设备号
	 */
	public String getDeviceNo() {
		return deviceNo;
	}

	/**
	 * <b>设置设备号。</b>
	 * <p><b>详细说明：</b></p>
	 * <!-- 在此添加详细说明 -->
	 * 无。
	 * @param deviceNo 设备号
	 */
	public void setDeviceNo(String deviceNo) {
		this.deviceNo = deviceNo;
	}

	/** 
	 * toBinary。
	 * @see org.quincy.netty.test.vo.BaseMessage#toBinary(io.netty.buffer.ByteBuf, java.util.Map)
	 */
	@Override
	public ByteBuf toBinary(ByteBuf buf, Map<String, Object> ctx) {
		buf = super.toBinary(buf, ctx);
		buf = buf.writeByte(this.getDeviceType());
		buf = NettyUtil.writeChars(buf, getDeviceNo(), 10);
		return buf;
	}

	/** 
	 * fromBinary。
	 * @see org.quincy.netty.test.vo.BaseMessage#fromBinary(io.netty.buffer.ByteBuf, java.util.Map)
	 */
	@Override
	public DeviceId fromBinary(ByteBuf buf, Map<String, Object> ctx) {
		super.fromBinary(buf, ctx);
		setDeviceType(buf.readUnsignedByte());
		setDeviceNo(NettyUtil.readChars(buf, 10));
		return this;
	}
}
